package com.macro.mall.service.impl;

import com.github.tobato.fastdfs.service.FastFileStorageClient;
import com.macro.mall.dao.PmsItemDao;
import com.macro.mall.dto.PmsItem;
import com.macro.mall.dto.PmsItemExcel;
import com.macro.mall.req.PmsItemReq;
import com.macro.mall.service.PmsItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @Author：Minxiao-Hao
 * @Description: 物品管理Service实现类
 * @name：PmsitemServiceImpl
 * @Date：2024/11/2 9:58
 */
@Service
public class PmsItemServiceImpl implements PmsItemService {
    @Autowired
    private PmsItemDao pmsitemDao;
    @Autowired
    private FastFileStorageClient fastfileStorageClient;
    /**
     * 查询物品列表
     * @return List<PmsItem>
     */
    @Override
    public List<PmsItem> list() {
        return pmsitemDao.list();
    }
    /**
     * 添加物品
     * @param pmsItemReq 请求参数
     */
    @Override
    public void create(PmsItemReq pmsItemReq) {
        pmsitemDao.create(pmsItemReq);
    }
    /**
     * 删除物品
     * @param id id
     */
    @Override
    public void delete(Long id) {
        pmsitemDao.delete(id);
    }
    /**
     * 修改物品
     * @param id id
     * @param pmsItemReq 请求参数
     */
    @Override
    public void update(Long id, PmsItemReq pmsItemReq) {
        pmsitemDao.update(id,pmsItemReq);
    }
    /**
     * 根据id获取对象
     * @param id id
     * @return PmsItem
     */
    @Override
    public PmsItem findById(Long id) {
        return pmsitemDao.findById(id);
    }

    /**
     * 上传文件
     * @param file 文件
     * @return 文件地址
     */
    @Override
    public String upload(MultipartFile file) {
        //获取文件名称
        String originalFilename = file.getOriginalFilename();
        String[] split = originalFilename.split("\\.");
        String suffix = split[split.length-1];
        try {
            return "http://120.46.8.28:8888/"+fastfileStorageClient.uploadFile(file.getInputStream(), file.getSize(), suffix, null).getFullPath();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 查询指定id的数据
     * @param ids id集合
     * @return List<PmsItemExcel>
     */
    @Override
    public List<PmsItemExcel> selectList(List<Long> ids) {
        return pmsitemDao.selectList(ids);
    }
}
